"""
相比sigmoid函数，tanh函数是零均值函数
输出范围为（-1,1）
"""
import numpy as np
import matplotlib.pyplot as plt


def tanh(x):
    # return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))
    return np.tanh(x)

def d_tanh(x):
    return 1 - np.square(tanh(x))


""" 进行画图 """
x = np.linspace(-5, 5, 100)
y = tanh(x)
dy = d_tanh(x)
plt.subplot(121)
plt.xticks(np.arange(-5, 6, 1))
plt.xlim(-5, 5)
plt.yticks(np.arange(-1, 1.1, 0.1))
plt.ylim(-1, 1)
plt.plot(x, y)
plt.plot([0, 0], [-1, 1], color="black", linewidth="2")

plt.subplot(122)
plt.xticks(np.arange(-5, 6, 1))
plt.xlim(-5, 5)
plt.yticks(np.arange(0, 1.1, 0.1))
plt.ylim(0, 1)
plt.plot(x, dy)
plt.plot([0, 0], [0, 1], color="black", linewidth="2")

plt.show()


